export const baseUrl = `http://localhost:8000/`;

/**
 * GET请求
 * @param {*} url 访问路径
 * @param {*} params 携带参数
 */
export const get = (url, params) => {
    return request(url, params, 'GET');
}

/**
 * POST请求
 * @param {*} url 访问路径
 * @param {*} params 携带参数
 */
export const post = (url, params) => {
    return request(url, params, 'POST');
}

/**
 * 文件上传接口
 * @param {*} fileUrl 上传路径
 */
export const upload = (fileUrl) => {
    return new Promise((resolve, reject) => {
        wx.uploadFile({
            filePath: fileUrl,
            name: 'file',
            url: baseUrl + 'upload/image',
            header: {
                'content-type': 'multipart/form-data',
            },
            success: (res) => {
                const response = JSON.parse(res.data);
                if (response.code == 200) {
                    resolve(response);
                } else {
                    wx.showToast({
                        title: response.message,
                        icon: 'error'
                    });
                    reject(response);
                }
            },
            fail: (err) => {
                console.log('异常', err);
                wx.showToast({
                    title: '服务器异常',
                    icon: 'error'
                });
                reject(err);
            }
        });
    });
}

/**
 * 将wx网络请求封装成异步请求
 * @param {*} url 请求链接
 * @param {*} params 统一请求参数为对象
 * @param {*} method 请求方法限定GET和POST
 */
const request = (url, params, method) => {
    // 返回异步数据
    return new Promise((resolve, reject) => {
        wx.request({
            url: baseUrl + url,
            method,
            data: params,
            success: (res) => {
                if (res.data.code == 200) {
                    resolve(res.data);
                } else {
                    wx.showToast({
                        title: res.data.message,
                        icon: 'error'
                    });
                    reject(res.data);
                }
            },
            fail: (err) => {
                wx.showToast({
                    title: `请求异常`,
                    icon: 'error'
                });
                reject(err);
            }
        });
    });
}